package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 一、使用JDBC链接 数据库 Mysql
 * 1.maven仓库下载对应mysql版本的jar包
 * 2.mysql服务器必须启动【WampSever集成】
 * 3.加载数据库驱动【Mysql】
 * 4.获取数据库链接[Mysql-用户名 root，密码 空]
 *二。链接成功 CRUD 增加操作
 * 1.test 库 创建表 person 给三个字段 id name address
 * 2.静态sql添加
 */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC 规范标准 要求：链接对应数据库必须先注册“驱动程序”
        // 告诉JDBC 现在链接什么种类的数据库
        //Class.forName() 通过反射加载对应数据库版本驱动类
        //对应数据库固定主测写法：Mysql
        Class.forName("com.mysql.jdbc.Driver");
        //4.获取mysql数据库的链接
        String username="root"; //mysql数据库用户名
        String password="";     //          密码
        // url链接地址：mysql
        // jdbc:mysql://ip地址:端口号/库名？characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
        // DriverManager 工具类，功能获取数据库链接：url、用户名和密码
        //getConnection方法，链接不同版本数据库的方法，连接成功，返回Connection

        Connection conn = DriverManager.getConnection(url,username,password);
        System.out.println("测试链接是否成功"+conn);

        //5.编写静态添加sql操作【字符串】
        //String sql="insert into person values(2,'张超','河北承德')";
        //练习：增加3条数据，删除一条数据，修改一条数据
        String sql="update person set name='书记' where id=1";


        //6.执行静态sql【增加操作】
        //Statement对象执行静态sql
        Statement st=conn.createStatement();

        int rows=st.executeUpdate(sql);
        System.out.println("添加"+rows+"记录");

        //7.关闭资源
        st.close(); conn.close();
    }
}

/**
 * 昨天重点
 * 1.JDBC规范 链接各种数据库 Java规范
 * 2.maven 仓库下载对应jar包
 *   mysql版本 5.5 mysqljdbc
 *   oracle版本 10g ojdbc8
 * 3.编程步骤--jdbc规范
 * 3.1加载驱动.jdbc链接数据库，每个数据库都有自己驱动
 * class.forName("com.mysql.jdbc.Driver")反射技术（固定结果）
 * mysql版本5.x 驱动com.mysql.jdbc.Driver
 * mysql版本8.x 驱动com.mysql.cj.jdbc.Driver
 * Java-->JDBC标准规范 Driver接口：驱动接口各种数据库
 * JDBC承认对应驱动接口【所有数据库承认接口，确定什么数据库】
 * 3.2获取链接，Mysql数据库；用户名 密码 url用字符串接收
 * String username="root"; ---Java写法
 * String password="";
 * url-->Mysql 链接路径--固定结构
 * jdbc:mysql://localhost:3306/mi?characterEncoding=UTF-8
 *   协议:子协议://IP地址:端口号/库名？设置字符集
 *                本机  [3306 1521]
 *                127.0.0.1
 *   Java获取链接--通过DriverManager接口：工具类，可以链接各种数据库
 *   Connection con=DriverManager.getConnection(url,username,password);
 *   具体链接方案给方法：getConnection()地址、用户名、密码确定无误
 *   返回一个对象Connection对象【Java与对应数据库链接成功】
 *   打印Connection对象--打印对象--链接成功
 *   4.执行sql:JDBC只能做CRUD增删改查--Mysql创建表、库
 *   4.1.Mysql -->使用库--->创建表
 *   4.2Java   -->CUD增改删操作
 *   4.3Java   -->确定数据库链接成功[con]--->createStatement调取执行增删改查操作
 *             -->返回Statement对象：执行静态sql
 *   代码：Statement st=con.createStatement();
 *   4.4 Java  -->Statement对象提供方法：executeUpdate();返回int 类型
 *             -->此方法执行sql:增删改操作---成功  几条记录
 *   代码：int rows=st.executeUpdate(sql)
 *   打印：打印成功多少条记录
 *   5.关闭资源【倒置法：Statement、Connection--链接数据库成功对象】
 */










